package com.baizhi.method;

/**
 * 守护线程
 *
 * 守护线程是通过普通线程调用setDeamon方法设置而来的
 * 守护线程在结束时机上与普通线程有一个区别在于：进程的结束时间
 * 当一个Java进程中所有的普通线程都结束后，该线程就会结束，此时会强制杀死所有正在执行的守护线程
 */
public class DaemonThreadDemo {
    public static void main(String[] args) {

        Thread rose = new Thread(){
            @Override
            public void run() {
                for (int i = 0; i < 5; i++) {
                    System.out.println("rose: 让我去吧！！！");

                    try {
                        Thread.sleep(1000);

                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("rose: 啊啊啊啊啊啊啊阿萨啊啊啊~~~~~");
                System.out.println("噗通");
            }
        };


        Thread jack = new Thread(){
            @Override
            public void run() {
                while(true){
                    System.out.println("jack:你跳我也跳!!");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }

            }
        };

        rose.start();

        //把jack设置成守护线程
        //设置守护线程必须在线程启动之前，否则会抛出异常
        jack.setDaemon(true);
        jack.start();

    }
}
